StupidBeauty
Read times:1486Posted at:Tue Oct 8 05:27:54 2013
- no title specified

iOS开发文档翻译:针对iOS 的视图控制器编程指南/关于视图控制器,View Controller Programming Guide for iOS/About View Controllers

关于 视图控制器

视图控制器,是一个应用程序的数据和它的视觉外观之间的重要纽带。无论何时,当一个iOS 应用程序显示一个用户界面时,它所显示的内容都是由一个视图控制器或是一组互相协作的视图控制器来管理的。所以,视图控制器决定了妳的应用程序的总体框架。

iOS提供了狠多内置的视图控制器类,用于支持常见的用户界面功能,例如导航和标签条。在开发应用程序的过程中,妳也会实现一些自定义的控制器,用于显示妳的程序所要用到的特殊内容。

快速了解

视图控制器,是模型 -视图-控制器 (Model-View-Controller (MVC))这个设计模式中的传统的控制器对象,但是它们还做了比这更多的工作。视图控制器,提供了iOS 应用程序中的狠多常见行为。通常情 况下,这些行为都已经在基类里实现了。对于某些行为,其基类会做一部分工作,而妳的视图控制器子类通过实现自定义代码的形式来做剩下的工作。例如,当用户旋转了整个设备时,在标准的实现代码中,会尝试着旋转整个用户界面;然而,妳的子类能够决定,是否应该在这种情况下旋转用户界面,以及,如果要旋转的话,在新的设备姿态下,用户界面中的各个视图要做什么样的重新布局。这样,由一个结构化的基类和特定的子类钩子(hooks)组成的组合,使得妳可以在遵守该平台上的设计模式的前提下轻松地对妳的应用程序的行为进行自定义。

一个视图控制器管理着一堆视图

一个视图控制器管理着妳的用户界面中的一部分。在收到请求时,它会提供一个视图,可被显示出来或者与之交互。通常情况下,这个视图会是一个更加复杂的视图树(hierarchy of views)的根视图—该视图树包含了:按钮、开关和其它在iOS 中已有实现的用户界面元素。该视图控制器充当着这个视图树的协调者(central coordinating agent)的角色,处理着视图与视图以及任何相关控制器或数据对象之间的信息交换。

相关章节: “视图控制器基础”

妳使用内容视图控制器来管理妳的内容

为了显示与妳的应用程序相关的特定内容,妳需要实现妳自己的内容视图控制器。妳可以通过继承 UIViewController 类或 UITableViewController 类来创建新的视图控制器类,然后实现其中必需的方法,来显示或控制妳的内容。

相关章节: “创建自定义的内容视图控制器”

容器型的视图控制器管理着其它的视图控制器

容器型视图控制器显示着由其它视图控制器所拥有的内容。这些其它的视图控制器,都是显式地与这个容器关联起来的,它们之间组成了一种亲子(parent-child)关系。容器和内容视图控制器之间组成了一个视图控制器对象树,其中有一个根视图控制器。

每种类型的容器,都定义了它自己的接口,用于管理子代对象。某些情况下,该容器的方法为它的子代对象之间定义了一种特殊的导航关系。一个容器还可以设置特定的限制,使得只有某些类型的视图控制器才能成为它的子代对象。还有可能,它需要由它的子代对象视图控制器来提供附加的内容,以用来配置该容器本身。

iOS提供了狠多内置的容器型视图控制器类型,可用来组织妳的用户界面。

相关章节: “视图控制器基础”

显示(Presenting)一个视图控制器会临时地将它的视图放置到屏幕上(Onscreen)

某些时间,一个视图控制器想要向用户显示一些附加的信息。或者,它可能需要用户来提供附加的信息或者做出特定的操作。在iOS 设备上,屏幕空间是有限的;设备可能没有足够的空间来同时显示所有的用户界面元素。于是,一个iOS 程序会临时地显示另一个视图,让用户与它交互。该视图只会在刚刚足够让用户完成所请求的操作的时间内显示。

为了让妳可以狠简单地实现这种界面;iOS允许一个视图控制器显示present)出另一个视图控制器的内容。当被显示出来时,新的视图控制器的视图会在屏幕的某个区域上显示—通常就是整个屏幕了。然后,当用户完成操作时,被显示出来的视图控制器会告之那个将它显示出来的视图控制器说该任务已经完成了。然后,之前的视图控制器就关掉刚才被它显示出来的这个视图控制器,并将屏幕恢复成之前的状态。

在一个视图控制器被设计时,就应当包含对于被显示的情况的应对,以便让这个视图控制器可以被其它视图控制器显示出来。

相关章节: “从一些视图控制器中显示另一些视图控制器”

故事板(Storyboards)将用户界面元素连接到一个应用程序界面中

用户界面的设计过程有可能会是特别复杂的。每个视图控制器都引用了多个视图、手势识别器和其它的用户界面元素。反过来,这些对象,也引用了该视图控制器本身,或者执行着特定的代码以便对用户的操作作出响应。而视图控制器极少是独立工作的。多个视图控制器之间的协作关系,也定义了妳的应用程序中的其它关系。简单来说,在创建一个用户界面的过程中,在实例化并且配置狠多对象,并且建立起它们之间的关系,这个过程狠费时,并且容易出错。

最好是使用界面构建器(Interface Builder)来创建故事板。故事板会容纳已经预先配置好的视图控制器以及与它们所关联的对象。每个对象的属性都可以在界面构建器中配置,它们之间的关系同样可以直接配置。

在运行时,妳的应用程序会载入故事板,并且使用故事板来驱动妳的程序的界面。当对象被从故事板中载入时,它们会被恢复到妳在故事板中预先配置的状态。UIKit 还提供了一些方法,妳可以重载它们,以便对那些无法在界面构建器里直接配置的行为进行自定义。

使用故事板,妳可以轻易看到妳的应用程序界面中各个对象是如何组合到一起的。同时妳也只需要写少量代码就可以创建及配置妳的程序中的用户界面对象。

相关章节: “视图控制器基础” “在妳的应用程序中使用视图控制器”

如何使用本文档

首先阅读“视图控制器基础”,它会说明视图控制器是如何创建妳的应用程序的界面的。然后,阅读“在妳的应用程序中使用视图控制器”以了解如何使用视图控制器,包括那些iOS 内置的和妳自己创建的。

当妳准备实现妳自己的自定义控制器时,阅读“创建自定义的内容视图控制器”,以了解妳的视图控制器要完成的任务,然后,阅读此文档中的剩余章节,以学习如何实现那些特定的行为。

前提知识

在阅读此文档之前,妳应当已经熟悉了 从今天开始开发 iOS 程序 妳的第二个 iOS 程序:故事板 中的内容。故事板那个教程演示了此文档中所说的狠多技术,包括以下的可可(Cocoa)概念:

  • •.定义新的面向对象C(Objective-C)

  • •.在管理应用程序的行为的过程中,代表(delegate)对象的角色

  • •. 模型 -视图-控制器 模式

参考

对于由UIKit 提供的标准容器型视图控制器的更多信息,参考 iOS 中的视图控制器目录

关于如何在妳的视图控制器中对视图进行操作,参考 iOS 的视图编程向导

关于如何在妳的视图控制器中处于事件,参考 iOS 中的事件处理向导

关于一个iOS 应用程序的整体结构,参考 iOS应用程序编程向导

关于如何在妳的项目中配置故事板,参考 Xcode概述

未知美人

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4